import axios from "axios";
import qs from 'qs';

/* // axios的返回值是一个promise对象 成功then  失败catch
axios({
    methods:'get请求还是post',
    url:'路径 /sss',
    baseURL:'http://xxx:8083',
    headers:{
        // 请求头
    },
    // 请求拦截
    transformRequest:[],
    transformResponse:[],
    // 参数
    params:{},
    // post请求体的参数
    data:{},
    // 超时时间
    timeout:1000

})
// axios.get()
// axios.post()
// 默认配置
// axios.defaults.baseURL
// 请求拦截器
constxx = axios.interceptors.request.use()
// 响应拦截器
axios.interceptors.response.use()
// 取消拦截器 移除拦截器
axios.interceptors.request.eject(拦截器的名字)

// promise */

// 设置基础路径
axios.defaults.baseURL = 'http://localhost:8000';
// 如果同桌使用一个服务器
// ipconfig  ip4  前提是都在一个局域网下
// 创建axios的实例对象
let instance = axios.create({
    timeout:5000
})
// request 做请求
let request = function({method,url,arg,headerType}){
    console.log(arg);
    let data = '';
    // method常见的有两种情况 get post
    // get post 可能是大写可能小写
    if(method.toLowerCase() == 'get'){
        // data需要处理 格式需要处理  data参数  ?key=value&key=value
        // get请求是不是form 如果是form需要加请求头

        if(headerType == 'form'){
            instance.defaults['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
            if(arg){
                url = url + "?" +qs.stringify(arg);
            }
        }

        
    }
    // post
    if(method.toLowerCase() == 'post'){
        if(headerType == 'form'){
            instance.defaults['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
            // form数据格式post 请求体 key=value&key=value
            // qs.stringify帮你转换
            data = qs.stringify(arg);
            console.log(data);
        }else{
            instance.defaults['Content-Type'] = 'application/json;charset=utf-8';
            data = arg;
        }
    }
    

    // axios({})
    return new Promise((resolve,reject)=>{
        instance({
            method,
            url,
            data//请求体当中的参数
            // params,//可以放到此处也可以放到url
        }).then(res=>{
            resolve(res);
        }).catch(err=>{
            reject(err)
        })
    })

}
export default request;



